package com.example.azheng.rxjavamvpdemo.net;


import com.example.azheng.rxjavamvpdemo.bean.BaseArrayBean;
import com.example.azheng.rxjavamvpdemo.bean.BaseObjectBean;
import com.example.azheng.rxjavamvpdemo.bean.banner.Banner;
import com.example.azheng.rxjavamvpdemo.bean.code.CodeBean;
import com.example.azheng.rxjavamvpdemo.bean.login.LoginBean;
import com.example.azheng.rxjavamvpdemo.bean.notice.Notice;
import com.example.azheng.rxjavamvpdemo.bean.rechargelist.RechargeResponseData;
import com.example.azheng.rxjavamvpdemo.bean.userInfo.UserInfo;

import java.util.Map;

import io.reactivex.Flowable;
import retrofit2.http.Field;
import retrofit2.http.FieldMap;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.Query;

/**
 * @author azheng
 * @date 2018/4/24.
 * GitHub：https://github.com/RookieExaminer
 * Email：wei.azheng@foxmail.com
 * Description：
 */
public interface APIService {

    /**
     * 登陆
     *
     * @param account 账号
     * @param pwd 密码
     * @return 登陆信息
     */
    @FormUrlEncoded
    @POST("/api/dt/login")
    Flowable<BaseObjectBean<LoginBean>> login(@Field("account") String account, @Field("pwd") String pwd);

    /**
     * 公告
     *
     * @return 公告信息
     */
    @GET("/api/dt/notice")
    Flowable<BaseArrayBean<Notice>> notice();

    /**
     * 用户信息
     *
     * @return 用户信息
     */
    @GET("/api/user/info")
    Flowable<BaseObjectBean<UserInfo>> userInfo();

    /**
     * 公告
     *
     * @return 公告信息
     */
    @GET("/api/dt/banner")
    Flowable<BaseArrayBean<Banner>> banner();

    /**
     * 玩法规则
     *
     * @return 玩法规则信息
     */
    @GET("/api/dt/playrule")
    Flowable<BaseObjectBean<String>> playRule();


    /**
     * 客服信息
     *
     * @return 玩法规则信息
     */
    @GET("/api/dt/service")
    Flowable<BaseObjectBean<String>> service();


    /**
     * 公告详情
     *
     * @param id id
     * @return 公告详情
     */
    @GET("/api/dt/noticeDetail")
    Flowable<BaseObjectBean<String>> noticeDetail(@Query("id") int id);

    /**
     * 充值记录
     *
     * @param page page
     * @return 充值记录
     */
    @GET("/api/user/rechargelist")
    Flowable<BaseArrayBean<RechargeResponseData>> rechargelist(@Query("page") int page);

    /**
     * 提现记录
     *
     * @param page page
     * @return 提现记录
     */
    @GET("/api/user/drawlist")
    Flowable<BaseArrayBean<RechargeResponseData>> drawlist(@Query("page") int page);

    /**
     * 注册
     *
     * @return 注册信息
     */
    @FormUrlEncoded
    @POST("/api/dt/reg")
    Flowable<BaseObjectBean<LoginBean>> register(@FieldMap Map<String, String> map);

    /**
     * 验证码
     * @return
     */
    @GET("/api/dt/getcode")
    Flowable<BaseObjectBean<CodeBean>> getCode();

}
